XLA関数ではありませんが、ログに対するライターでttApplicationContextプロシージャをコールして、アプリケーションに関連付けられているバイナリ・データをXLAリーダーに渡すことができます。ttApplicationContextプロシージャは、現在のトランザクションが生成する次の更新レコードに返す1つのVARBINARY値を指定します。XLAを使って更新を読み込むアプリケーションでは、「NOT INLINE可変長列データの読込み」で説明されている方法で、この値へのポインタを取得できます。
注意: | コンテキスト値は1つの更新レコードのみに適用され、適用後に再設定されます。同じコンテキスト値を複数の更新に適用する場合は、各更新の前に再設定する必要があります。 |
コンテキストを設定するには、次の手順を実行します。
rc = SQLPrepare(hstmt, "call ttApplicationContext(?)", SQL_NTS);
rc = SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_BINARY,
SQL_VARBINARY, 0, 0, &contextBuffer,
sizeof contextBuffer, &contextBufferLen);
rc = SQLExecute(hstmt);
トランザクションは、SQLTransactへの通常のコールでコミットされます。
rc = SQLTransact(NULL, hdbc, SQL_COMMIT);
注意: | ttApplicationContextをコールした後にSQL処理に失敗すると、コンテキストが次の処理に渡されず、失われる可能性があります。このような問題が発生した場合は、アプリケーションで、次のSQL処理の前にttApplicationContextを再度コールできます。 |